package br.com.locasis.funcionalidades;

import java.util.List;

import javax.persistence.EntityManager;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

import br.com.locasis.entity.Agendamento;
import br.com.locasis.entity.Aluguel;
import br.com.locasis.utilitarios.UtilDate;

@Name("homeController")
@Scope(ScopeType.CONVERSATION)
//@Restrict(value="#{identity.hasRole('"+PerfilUsuario.PERFIL_PETSHOP+"')}")
public class HomeController {
	
	@In(create=true)
	private EntityManager entityManager;

	private List<Aluguel> listaAlugueis;
	
	private List<Agendamento> listaAgendamentos;
	
	public void onLoad(){
		setListaAgendamentos(null);
		setListaAlugueis(null);
	}

	public List<Agendamento> getListaAgendamentos() {
		if (listaAgendamentos == null) {
			listaAgendamentos = entityManager.createQuery("select a from Agendamento a where a.dataInicio > :data and a.flgAtivo is true order by a.dataInicio")
				.setParameter("data", UtilDate.getDataAtual())
				.setMaxResults(10)
				.getResultList();
		}
		return listaAgendamentos;
	}

	public void setListaAgendamentos(List<Agendamento> listaAgendamentos) {
		this.listaAgendamentos = listaAgendamentos;
	}

	public List<Aluguel> getListaAlugueis() {
		if (listaAlugueis == null) {
			listaAlugueis = entityManager.createQuery("select a from Aluguel a where a.dataRetorno is null and a.flgAtivo is true order by a.dataPrevistaEntrega")
				.setMaxResults(10)
				.getResultList();
		}
		return listaAlugueis;
	}

	public void setListaAlugueis(List<Aluguel> listaAlugueis) {
		this.listaAlugueis = listaAlugueis;
	}
	
}
